"""
读取 json 文件，获取 测试数据
"""
import json
import unittest
from parameterized import parameterized


# 定义函数，从json文件中，读取数据，转换成[(),(),()]
def read_json_file():
    # 1. 读json文件
    with open('json_data.json', 'r', encoding='utf8') as f:
        json_data = json.load(f)

    # 2. 循环提取每组数据，转成元组，存入空列表
    json_list = []
    for data in json_data:
        tmp = tuple(data.values())  # 提取value值，转成元组
        json_list.append(tmp)  # 随着循环，依次，存入空列表

    # 3. 返回转换后的 [(),(),()]。 注意：return 不要写到 for 内部！！
    return json_list


def add(x, y):
    return x + y


class TestAdd(unittest.TestCase):
    @parameterized.expand(read_json_file())  # 调用test_data()函数时，就能得到 [(),(),()] 格式的数据
    def test01_add(self, a, b, expect):
        res = add(a, b)
        self.assertEqual(expect, res)
